C++ string[] 问题

来源:百度知道 编辑:UC知道 时间:2024/06/19 02:59:13
有个string[]如下
string ask1[]={"Li+","Na+","K+","Rb+","Cs+","NH4(+)","NO3(-)","ClO3(-)","ClO4(-)","C2H3O2-","Cl-","Br-","I-","F-","SO4(2-)","O(2-)","OH(-)","CO3(2-)","PO4(3-)","S(2-)","SO3(2-)","C2O4(2-)","CrO4(2-)"};

如何写计算里面有多少个化学元素

可以用表驱动法,将化学元素表储存到一个表中,对字符串数组中的每一个元素进行分析:
1.去掉+,-及数字这些干扰项.
2.以两个字符为初始对比单位与设定好的元素表中依次比对.(化学元素符号最多就是两个字母吧.)
3.如果两个查找无符合项,就去掉第二个,只用第一个进行比对.
4.每比出一个元素就存入一个新的字符串数组中.
5.之后再比出的元素也要与这个数组中的每个元素比较,以此排除重复出现的化学元素.
6.输出新字符串数组即为结果.

这个比较麻烦一点,需要对每个字符进行判断,例如读取第二个字符串的时候,当你读入第一个字符"N"时,你不能直接判断他就是氮元素,你还要读取后面一个字符,如果是a的话,那么他们两个算一个钠元素,而像第七个字符串,如果读到的是O的话,那说明前面的"N"是氮元素,所以你要对元素周期表里的所有双字符的进行判断,元素周期表忘完了,不记得都是哪些双的啦,这里面的有Li,Na,Rb,Cs,Cl,Br!!!